In some multi-socket distributed memory systems each socket may include its own home agent. The home agent may guard the memory local to the socket against cache coherency violations, i.e., those impacting the integrity of data stored in the local caches of a shared resource. Cache coherency protocols may be used to ensure that no processor relies on a memory block that has become stale, often due to a modification or update performed to the block by some other processor. There are two typical classes of snooping protocols to maintain cache coherency, directory-based and snooping. In a directory-based protocol, the sharing status of all blocks may be kept in a centralized location or directory. In this case, sharing status may not be maintained in the individual caches. In snooping-based protocols, the caches may monitor or snoop all transactions appearing on the system network interconnecting various system modules. A particular snooping protocol may be source broadcast, home broadcast, or home directory based snooping.
A directory may include a presence vector “PV” that may indicate whether a line in local memory has been cached in any of the sockets. When a particular home agent receives a request for a memory line from the local or remote socket, it may request the presence vector “PV” from the directory in memory, and send out snoops to only those sockets that the PV indicates are caching the line. As such, the directory may help in reducing the snoop traffic considerably. However, this savings in snoop traffic may create an increase in memory write traffic. This increase in write traffic may be due to a modification of the PV that requires updating the directory so that the directory has the correct PV for subsequent requests for the line. For example, a PV may change due to a change in line ownership/sharing. This PV update traffic may create a significant memory bandwidth bottleneck resulting in lower system performance.
Like reference numerals refer to like parts throughout the description of several views of the drawings.